package com.jlpay.open.jlpay.sdk.java.model.ledger.response;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 *
 * @author dengwenning
 * @since 2024/8/30
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class BalanceRefundResponse extends BaseResponse {

    /**
     * 机构号
     * 分账系统分配的机构号，
     * 示例值：50261513
     */
    private String orgCode;

    /**
     * 接入方系统生成的分账请求单号
     */
    private String outOrderNo;

    /**
     * 嘉联分账单号
     * 分账系统返回的单号，
     * 示例值：61109827766780299776
     */
    private String orderNo;

    /**
     * 商户回退单号
     * 此回退单号是接入方系统生成的一个新的回退单号，系统内部唯一
     */
    private String outReturnNo;

    /**
     * 嘉联回退单号
     * 嘉联分账回退单号，嘉联系统返回的唯一标识
     */
    private String returnNo;

    /**
     * 分账金额
     * 分账接收方入账金额，单位为分，
     * 示例值：2000
     */
    private Integer amount;

    /**
     * 分账场景用途描述
     */
    private String description;

    /**
     * 分账结果
     * 1、PENDING：处理中
     * 2、SUCCESS：已成功
     * 3、FAILED：已失败
     */
    private String result;

    /**
     * 分账失败原因，当分账结果result为FAILED时，返回该字段
     */
    private String failReason;

    /**
     * 分账创建时间，格式"yyyy-MM-dd HH:mm:ss"
     */
    private String createTime;

    /**
     * 分账完成时间，格式"yyyy-MM-dd HH:mm:ss"
     */
    private String finishTime;

}
